#include<bits/stdc++.h>
using namespace std;
int main(){
    string str1,str2;
    char a; 
    str1.find(str2);  //在字符串str1中查找str2，返回str2中首个字符在str1中的地址
    str1.find(str2,5);  //从str1的第五个字符开始查找str2
    str1.find(a);//在str1中查找字符a并返回第一个查找到的地址
//如果查找成功则输出查找到的第一个位置，否则返回-1；

    //查找子串中的某个字符最先出现的位置。find_first_of()不是全匹配，而find()是全匹配
    string s1 = "adedef";
    string s2 = "dek";
    int ans = s1.find_first_of(s2) ;   //在S1中查找子串S2
    cout<<ans<<endl;
    //其中find_first_of()也可以约定初始查找的位置：
    s1.find_first_of(s2, 2) ;

    /*
    1.find_last_of()
        这个函数与find_first_of()功能差不多，只不过find_first_of()是从字符串的前面往后面搜索，
        而find_last_of()是从字符串的后面往前面搜索。
    
    2.rfind()
        反向查找字符串，即找到最后一个与子串匹配的位置
    
    3.find_first_not_of()
        找到第一个不与子串匹配的位置
    
    4.find_first_not_of()
        函数原型：size_type find_first_not_of( char ch, size_type index = 0 );
        在字符串中查找第一个与str中的字符都不匹配的字符，返回它的位置。搜索从index开始。
        如果没找到就返回string::nops。
    find_last_not_of()
        函数原型：size_type find_last_not_of( char ch, size_type index = 0 );
        在字符串中查找最后一个与str中的字符都不匹配的字符，返回它的位置。搜索从index开始。
        如果没找到就返回string::nops。


    */
    str1.find_first_not_of(a);
}